//整个项目 - 所有API接口（后台的地址） -统一在这里管理
//好处：便于统一管理和修改
//(1) :起名要以API结尾（为了和别的方法区分开）-封装的都说一个一个的网络请求方法（相当于对axios进行二次封装）
//（2）：网络请求的方法不允许被覆盖，所有还是用const修饰
//（3）：注意每个方法都对应一个后台接口，哪些变量会变

//axios全局配置
axios.defaults.baseURL = 'http://123.57.109.30:3007';

//添加请求拦截器
axios.interceptors.request.use(function (config) {
  if (config.url.startsWith('/my')) {
    config.headers['Authorization'] = sessionStorage.getItem("token");
  }
  return config;
}, function (error) {
  return Promise.reject(error);
});








//新知识点：axios响应拦截器
//axios发起请求以后，响应回来，触发具体的then之前，先执行相应拦截器，再执行then方法
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  var layer = layui.layer;
  layer.msg(response.data.message);
  if (response.data.status == 0) {//登录页面成功时,状态为0.错误为1
    return response;
  } else {
    return Promise.reject(response.data.message);
  }
}, function (error) {
  // let { response: { data: { message } } } = error;
  // layer.msg(message, {
  //   time: 1500,
  //   end: function () {
  //     sessionStorage.removeItem('token');
  //     window.parent.location.href = "/login.html"
  //   }
  // })
  // 对响应错误做点什么
  return Promise.reject(error);
})


//登录
const loginAPI = (arrStr, fn) => {
  axios({
    method: 'post',
    url: '/api/login',
    data: arrStr
  }).then(res => {
    fn(res);

  })

}

//注册
const zuceAPI = (arrStr, fn) => {
  axios({
    method: 'post',
    url: '/api/reguser',
    data: arrStr
  }).then(res => {
    fn(res);
  })
}

//个人信息 - 获取用户信息
const getInfoAPI = (arrStr, fn) => {
  axios({
    method: 'GET',
    url: '/my/userinfo'
  }).then(res => {
    fn(res);
  })
}
//个人信息 - 更新用户信息
const getgxInfoAPI = (arrStr, fn) => {
  axios({
    method: 'POST',
    url: '/my/userinfo',
    data: arrStr
  }).then(res => {
    fn(res);
  })
}
//个人信息 -修改密码
const changPassAPI = (arrStr, fn) => {
  axios({
    method: 'POST',
    url: '/my/updatepwd',
    data: arrStr
  }).then(res => {
    fn(res);
  })
}

//更新用户头像
const upHeadImgAPI = (arrStr, fn) => {
  axios({
    method: 'POST',
    url: '/my/update/avatar',
    data: arrStr
  }).then(res => {
    fn(res);
  })
}
//新增文章分类列表
const fenleiAPI = (arrStr, fn) => {
  axios({
    method: 'POST',
    url: '/my/article/addcates',
    data: arrStr
  }).then(res => {
    fn(res);
  })
}

//获取文章分类列表
const cateListAPI = (arrStr, fn) => {
  axios({
    method: 'GET',
    url: '/my/article/cates'
  }).then(res => {
    fn(res);
  })
}

//根据id删文章
const delCateAPI = (id, fn) => {
  axios({
    method: 'GET',
    url: '/my/article/deletecate/' + id
  }).then(res => {
    fn(res);
  })
}

//根据 Id 更新文章分类数据
const updatecateAPI = (arrStr, fn) => {
  axios({
    method: 'POST',
    url: '/my/article/updatecate',
    data: arrStr
  }).then(res => {
    fn(res);
  })
}

//文章 - 新增
const addArtAPI = (arrStr, fn) => {
  axios({
    method: 'POST',
    url: '/my/article/add',
    data: arrStr
  }).then(res => {
    fn(res);
  })
}
//获取文章列表
const artListAPI = (arrStr, fn) => {
  axios({
    method: 'GET',
    url: '/my/article/list',
    params: arrStr
  }).then(res => {
    fn(res);
  })
}
//文章 - 查询某个ID的详细文章数据
const chawenAPI = (id, fn) => {
  axios({
    method: 'GET',
    url: '/my/article/' + id,
  }).then(res => {
    fn(res);
  })
}
//删除文章
const artDelAPI = (id, fn) => {
  axios({
    method: 'GET',
    url: '/my/article/delete/' + id,
    params: arrStr
  }).then(res => {
    fn(res);
  })
}

// 文章 - 更新
const updateArtAPI = (argStr, fn) => {
  axios({
    method: 'POST',
    url: '/my/article/edit',
    data: argStr
  }).then(res => {
    fn(res);
  })
}